JavaScript Object Notation
part 5/7 ยท 19.8 KB total
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
รvaluation
En JavaScript, il est simple dโรฉvaluer une expression JSON pour la transformer en Object natif :
var donnees = eval('('+donnees_json+')');
Cette mรฉthode comporte toutefois des risques car la chaรฎne de caractรจres donnees_json peut contenir nโimporte quel code JavaScript. Il existe une mรฉthode plus sรปre qui consiste ร analyser la syntaxe de la chaรฎne de caractรจres donnees_json, seule solution disponible dans les autres langages de programmation, ร lโexception de Python, la syntaxe de JSON correspondant ร ses deux types principaux : les listes et les dictionnaires.
ร partir de 2009, les navigateurs commencent ร intรฉgrer un support natif du format JSON. Cela facilite sa manipulation, la sรฉcuritรฉ (contre lโรฉvaluation de scripts malveillants inclus dans une chaรฎne JSON), et la rapiditรฉ de traitement. Ainsi les navigateurs Firefox 3.5, IE 8 ou encore Opera 10.5 lโintรจgrent en natifcite-ref-8[8].
รvaluer en JavaScript une expression JSON pour la transformer en Object se fait alors de la maniรจre suivante :
var donnees = JSON.parse(donnees_json);
Diffรฉrentes bibliothรจques javascript permettent de supporter des navigateurs plus anciens avec une syntaxe similaire.
Extensions du format
JSONP
JSONP ou JSON-P (pour JSON with padding, en franรงais, ยซ JSON avec formatage ยป) est une extension dans laquelle le nom de la fonction de retour est indiquรฉcite-ref-9[9]. Lโidรฉe originale proviendrait du blog de Bob Ippolito en 2005cite-ref-10[10] et est maintenant rรฉpandue dans les applications Web 2.0, telle que Googleโs toolkit Applicationscite-ref-11[11]. Des amรฉliorations sont prรฉvues pour y ajouter des argumentscite-ref-12[12].
JSONP utilise des balises de scripts, les appels sont ouverts. Ainsi, JSONP peut รชtre inappropriรฉ pour transporter des informations confidentielles.
JSON5
JSON5 est une extension de la syntaxe du JSON, destinรฉ ร contourner les limitations de ce dernier.
Spรฉcifications
โข Les noms des champs ne sont plus entre guillemets
โข Support des commentaires (sur une ou plusieurs lignes)
โข Les nombres peuvent รชtre reprรฉsentรฉs au format hexadรฉcimal, รชtre prรฉcรฉdรฉs du signe positif (+), avoir pour valeur Infinity ou NaN
โข Espaces blancs supplรฉmentaires autorisรฉs
โข Les chaรฎnes de caractรจres peuvent รชtre contenus entre apostrophes
HJSON
HJSON est une extension de la syntaxe JSON, ayant le mรชme objectif que JSON5 (voir ci-dessus).
Spรฉcifications
โข Les champs peuvent รชtre sรฉparรฉs par un retour ร la ligne au lieu d'une virgule
โข Possibilitรฉ d'รฉcrire des commentaires (#, //, /* ... */)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ